\section*{Kata Pengantar}

\subsection*{Sistematika Buku}

Buku ini membahas analisis algoritma dengan pendekatan berupa memberikan sebanyak mungkin contoh-contoh kasus. Untuk memudahkan pemahaman siswa tentang analisis algoritma, buku ini menggunakan bahasa pemrograman Python.


\subsection*{Pendahuluan}

Buku ini disusun dengan mempertimbangkan pendekatan praktis dalam merancang dan menganalisa algoritma. Mahasiswa diantarkan kepada pemahaman bagaimana merancang sebuah algoritma, dengan terlebih dahulu memberikan sebuah contoh permasalahan komputasi. Secara bertahap mahasiswa diajak untuk memperbaiki atau meningkatkan kinerja dari algoritme yang dibuat.
Untuk dapat melakukan analisis terhadap sebuah algoritma, dalam beberapa bab awal pembaca diajak untuk terlebih dahulu memahami cara-cara bagaimana menganalisa kinerja dari sebuah algoritma beserta dengan arti penting dari analisis algoritma itu sendiri.

Pengantar analisis algoritma dimulai dengan mendiskusikan satu permasalahan komputasi sederhana yang kemudian diturunkan menjadi sejumlah instruksi dasar yang dijalankan oleh komputer. Mahasiswa diajak me-\emph{review} kembali konsep yang diajukan oleh Bohm-Jacopini bahwa setiap program komputer yang dijalankan dalam komputer berarsitektur von Neumann dapat dikelompokkan ke dalam tiga kelompok instruksi:
\begin{itemize}
  \item Sekuensial
  \item Percabangan
  \item Perulangan
\end{itemize}

Secara bertahap dibahas sebuah program dengan rangkaian instruksi sekuensial misalnya mencetak sejumlah angka berurutan. Program itu dianalisis untuk mengantarkan mahasiswa kepada bagaimana menghitung \emph{running-time} dari sebuah program.

Permasalahan kemudian dibuat sedikit lebih rumit dengan memberikan nilai batas yang bervariasi. Di sini mahasiswa diajak untuk memahami keterkaitan antara \emph{running-time} dengan jumlah data $n$ yang diolah, dalam hal ini dicetak ke layar komputer.

Dalam membuat dan merancang sebuah algoritma, mahasiswa diajak untuk memahami bahwa sebuah algoritma yang baik itu harus memiliki sifat-sifat antara lain:
\begin{itemize}
  \item Benar
  \item Sistematis
  \item Finite
\end{itemize}
